﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SEG.Model;
using Common.DataAccess;

namespace SEG.DataAccess
{
    public class ReporteUsuarioAuditoriaDataAccess : GenericReportDataAccess<ReporteUsuarioAuditoriaView, ReporteUsuarioAuditoriaCriteria, SEGContext>
    {
        public override List<ReporteUsuarioAuditoriaView> ReadViewsByCriteria(ReporteUsuarioAuditoriaCriteria criteria)
        {
            return ObjectContext.Usuario_Auditoria.
                Where(usuario => (String.IsNullOrEmpty(criteria.NombreUsuario) || usuario.NombreUsuario.Contains(criteria.NombreUsuario)) &&
                                 (String.IsNullOrEmpty(criteria.NroDocumento) || usuario.NroDocumento.Contains(criteria.NroDocumento))).
                Select(usuario => new ReporteUsuarioAuditoriaView
                {
                    ID = usuario.ID_Usuario,
                    NombreApellido = usuario.NombreApellido,
                    NombreUsuario = usuario.NombreUsuario,
                    NroDocumento = usuario.NroDocumento,
                    Accion = usuario.Tipo_Accion,
                    UsuarioAccion = usuario.Usuario_Accion,
                    FechaAccion = usuario.Fecha_Accion
                }).OrderBy(c => c.FechaAccion).ToList();
        }
    }
}
